
import gmpy2
import libnum

a= 24206265871435822703437518362958531356211626642007253784650483176562422122875340827288772819943478120095206127359525474074270229930748107117372266160892473927182468441245406239260325825983178681264861898227398697570877226191045205101392758306677352447609463242377314079908674367312467009340725296069934982237938083953835511845988528740319671339681988454341775949773782599028758795858243892505801751373271145879675219676812982346718542627999285987122318375982631166086424677380378329616021990407324172009541237668232705741580914256004477070860164426099061412907214192878993303911745798633464333183684318013108481194330
c1= 126859631077098611901511232008797051138574124478480730639144977155143424488144265276530078952871200528973257851214276765041293928258819231377836450311630167556457808627111669654324359435794012547994299283010757231576308562368663215764193973190892053938581481578656240077555108821408787703658040501252208210069312753866895619962762868562608316860640231777068617867166147
c2= 11826835748339980863398980051042008082750935496082618268555582889298555680769555714450413403033938771160762505072342684767000980792793194857952806136430859946630518327736718530548802427141716474368099142576512330275210929488407696914896855868077026602082934281710567654604010065436992743237842728041335992414634519294554988610297895321490267356849938289132035975812904

p=libnum.nroot(a,2)
print(gmpy2.is_prime(p))
q=libnum.nroot(a-p**2,2)
print(gmpy2.is_prime(q))
print(p**2+q**2==a)
print(p)
print(q)

n=p*q
phi=(p-1)*(q-1)

for e1 in range(2**16,2**15,-1):
    try:
        if gmpy2.is_prime(e1):
            d=libnum.invmod(e1,phi)
            m=pow(c1,d,n)
            flag=libnum.n2s(m)
            if b"flag" in flag:
                print(flag)
    except:
        continue
